7833. Большие среднего арифметического

 

Дан массив, состоящий из n целых чисел. Найдите сумму и количество элементов массива, значения которых больше среднего арифметического всех элементов.

 

Вход. В первой строке задано число n (1 n ≤ 100)количество элементов в массиве. Во второй строке записаны n целых чисел, каждое из которых по модулю не превышает 100.

 

Выход. Выведите сумму и количество элементов массива, значения которых больше среднего арифметического всех элементов.

 

Пример входа

Пример выхода

5

1 6 2 6 3

12 2

 

 

РЕШЕНИЕ

массивы

 

Анализ алгоритма

Сначала вычислим сумму s заданных чисел. Среднее арифметическое всех чисел равно s / n. Далее найдем сумму и количество чисел, которые больше среднего арифметического.

 

Пример

В примере задано n = 5 чисел. Их сумма равна s = 1 + 6 + 2 + 6 + 3 = 18. Среднее арифметическое чисел равно s / n = 18 / 5 = 3.6. Имеются два числа, больших 3.6: это две шестерки. Их сумма равна 12.

 

Реализация алгоритма

Читаем входной массив. Вычисляем сумму его элементов.

 

scanf("%d",&n);

for(i = 0; i < n; i++)

{

  scanf("%d",&m[i]);

  s += m[i];

}

 

Вычисляем сумму sum и количество cnt элементов массива m[i], которые больше среднего арифметического s / n. Заметим, что неравенство m[i] > s / n эквивалентно m[i] * n > s.

 

sum = cnt = 0;

for(i = 0; i < n; i++)

  if (m[i] * n > s) // m[i] > s / n

  {

    sum += m[i];

    cnt++;

  }

 

Выводим ответ.

 

printf("%d %d\n",sum,cnt);

 

Python реализация

Читаем входные данные.

 

n = int(input())

lst = list(map(int, input().split()))

 

Вычисляем среднее арифметическое списка.

 

ave = sum(lst) / len(lst)

 

Строим список из чисел, больших среднего арифметического.

 

above_ave = [x for x in lst if x > ave]

 

Вычисляем сумму и количество чисел, больших среднего арифметического.

 

sum = sum(above_ave)

cnt = len(above_ave)

 

Выводим ответ.

 

print(sum, cnt)